package com.hzw.saas.common.flow.pojo.bo;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.hzw.saas.common.util.constants.PatternConsts;
import org.springframework.format.annotation.DateTimeFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
 * 流程实例BO
 *
 * @author zzl
 * @since 08/10/2021
 */
@Data
@ApiModel("流程实例")
public class FlowInstanceBO implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "流程实例PID", position = 11)
    private String pid;

    @ApiModelProperty(value = "流程实例名称", position = 12)
    private String flowInstanceName;

    @ApiModelProperty(value = "流程定义ID", position = 13)
    private String flowId;

    @ApiModelProperty(value = "流程定义名称", position = 14)
    private String flowName;

    @ApiModelProperty(value = "流程定义描述", position = 15)
    private String flowDesc;

    @ApiModelProperty(value = "流程实例当前节点ID", position = 16)
    private String flowNodeId;

    @ApiModelProperty(value = "流程实例当前节点名称", position = 17)
    private String flowNodeName;

    @ApiModelProperty(value = "流程实例当前节点样式", position = 17)
    private String flowNodeStyle;

    @ApiModelProperty(value = "发起人ID", position = 18)
    private String submitUserId;

    @ApiModelProperty(value = "发起人用户名", position = 21)
    private String submitUserName;

    @ApiModelProperty(value = "流程实例发起时间, pattern: " + PatternConsts.NORM_DATETIME_PATTERN, position = 22)
    @JsonFormat(pattern = PatternConsts.NORM_DATETIME_PATTERN)
    @DateTimeFormat(pattern = PatternConsts.NORM_DATETIME_PATTERN)
    private Date createTime;

    @ApiModelProperty(value = "流程实例当前节点可执行处理列表", position = 31)
    private List<FlowProcessBO> currFlowProcesses;

}
